package com.simple.system.service;

import com.simple.framework.core.domain.vo.PagingVo;
import com.simple.system.domain.dto.AddSysDictionaryDataDto;
import com.simple.system.domain.dto.AddSysDictionaryDto;
import com.simple.system.domain.dto.ListSysDictionaryDto;
import com.simple.system.domain.entity.SysDictionary;
import com.simple.system.domain.entity.SysDictionaryData;

import java.util.List;

/**
 * @Description 字典表(SysDictionary)表服务接口
 * @Author xiaoke
 * @Date 2024/8/10 18:00
 * @Version 1.0
 */
public interface SysDictionaryService {

    /**
     * 查询字典表列表
     *
     * @param dto 字典表列表查询参数
     * @return 字典表列表
     */
    PagingVo<SysDictionary> list(ListSysDictionaryDto dto);

    /**
     * 新增字典表
     *
     * @param dto 字典表新增参数
     * @return 字典表id
     */
    Long crate(AddSysDictionaryDto dto);

    /**
     * 根据字典id更新字典表
     *
     * @param id 字典id
     * @param dto 字典表更新参数
     */
    void update(Long id, AddSysDictionaryDto dto);

    /**
     * 根据字典id删除字典表
     *
     * @param id 字典id
     */
    void delete(Long id);

    /**
     * 根据字典id查询字典数据
     *
     * @param type 字典类型
     * @return 字典数据
     */
    List<SysDictionaryData> getDictionaryData(String type);

    /**
     * 新增字典数据
     *
     * @param dto 字典数据新增参数
     * @return 字典数据id
     */
    Long createData(AddSysDictionaryDataDto dto);

    /**
     * 根据字典数据id删除字典数据
     *
     * @param id 字典数据id
     */
    void updateData(Long id, AddSysDictionaryDataDto dto);

    /**
     * 根据字典数据id删除字典数据
     * @param id 字典数据id
     */
    void deleteData(Long id);

}

